package org.springblade.modules.admin.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.modules.admin.dto.BuildingElevatorDTO;
import org.springblade.modules.admin.entity.RobotBuildingElevator;
import org.springblade.modules.admin.vo.BuildingAlreadyVO;
import org.springblade.modules.admin.vo.RobotBuildingElevatorTitleVO;
import org.springblade.modules.admin.vo.RobotBuildingElevatorVO;

import java.util.List;

/**
 * @author: Sharry
 * @createTime: 2023/5/18 16:56
 * @version: Version-1.0
 */
public interface IRobotBuildingElevatorService extends BaseService<RobotBuildingElevator> {

	/**
	 * 批量新增 群-项目-电梯
	 * @param chatgroupId 群id
	 * @param buildingElevatorDTOList 项目-电梯DTO列表
	 * @return 是否成功
	 */
    boolean addBatch(Long chatgroupId, List<BuildingElevatorDTO> buildingElevatorDTOList);

	/**
	 * 群-项目-电梯分页列表
	 * @param elevatorAddress 电梯位置模糊查询条件
	 * @param buildingId 当前项目Id
	 * @param chatgroupId 当前群Id
	 * @param page 分页条件
	 * @return 群-项目-电梯分页列表
	 */
	IPage<RobotBuildingElevatorVO> getPageByBuildingId(Long chatgroupId,String elevatorAddress, Long buildingId, IPage<RobotBuildingElevatorVO> page);

	/**
	 * 页面抬头统计信息
	 * @param chatgroupId 当前群id
	 * @return 抬头信息
	 */
	RobotBuildingElevatorTitleVO getTitle(Long chatgroupId);

	/**
	 * 根据项目id 删除群-机器人-项目-电梯关联关系
	 * @param buildingIds 项目id列表
	 * @param chatgroupId chatGroupId
	 * @return 是否成功
	 */
    boolean delByBuildings(Long chatgroupId,List<Long> buildingIds);

	/**
	 * 根据电梯id 删除群-机器人-项目-电梯关联关系
	 * @param elevatorIds 电梯id列表
	 * @param chatgroupId chatGroupId
	 * @return 是否成功
	 */
	boolean delByElevators(Long chatgroupId,List<Long> elevatorIds);

	/**
	 * 左侧项目电梯列表
	 * @param chatgroupId 群聊id，主键
	 * @return 列表数据
	 */
    List<BuildingAlreadyVO> getLeft(Long chatgroupId);
}
